package avicit.bdp.oss.dao;

import avicit.bdp.common.base.BaseDAO;
import avicit.bdp.oss.dto.BucketAuditDto;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2020-11-12
 * @类说明：BucketAuditDao
 * @修改记录：
 * @注意事项：
 * @功能：指标统计信息
 */
@Repository
public interface BucketAuditDao extends BaseDAO<BucketAuditDto> {
    /**
     * 根据Action分页查询容量
     * @param bucketId
     * @param startTime
     * @param endTime
     * @return
     */
    Page<BucketAuditDto> getCapacityByActionType(@Param("bucketId")String bucketId,
                                               @Param("action")String action,
                                               @Param("startTime")long startTime,
                                               @Param("endTime")long endTime);

    /**
     * 根据Action分页查询请求数
     * @param bucketId
     * @param startTime
     * @param endTime
     * @return
     */
    Long getReqNumByActionType(@Param("bucketId")String bucketId,
                               @Param("action")String action,
                               @Param("startTime")long startTime,
                               @Param("endTime")long endTime);
    /**
     * 根据Action分页查询最大容量
     * @param bucketId
     * @param startTime
     * @param endTime
     * @return
     */
    Long getMaxCapacityByActionType(@Param("bucketId")String bucketId,
                                    @Param("action")String action,
                                    @Param("startTime")long startTime,
                                    @Param("endTime")long endTime);

    /**
     * 根据Action分页查询最小容量
     * @param bucketId
     * @param startTime
     * @param endTime
     * @return
     */
    Long getMinCapacityByActionType(@Param("bucketId")String bucketId,
                                    @Param("action")String action,
                                    @Param("startTime")long startTime,
                                    @Param("endTime")long endTime);
}
